Computing systems are ubiquitous, and serve the needs of computing system users throughout the world. Application programs of all types have been developed to execute on those computing systems to help those computing system users in a wide variety of tasks.
Some application programs, in the area of personal finance for example, are developed with the consumer focus, and thus execute on computing systems owned and/or operated by consumers. Some of those consumer focused personal finance application programs interface with other computing systems, such as banking related computing systems, to download, analyze, and otherwise operate with user specific banking data associated with the user.
Other computing systems have been implemented which have application software designed to serve many consumers at a time. In the area of personal finance, for example, Mint™ of Intuit Inc, is regularly used by many consumers to acquire and analyze or otherwise operate on their financial data. Exemplary tasks that consumers perform using Mint™, for example, include paying bills, analyzing and tracking their expenses, and preparing and tracking budgets.
In the example of paying bills, such third-party computing systems typically use consumer provided data about merchants and others who send them bills, also called billers, when the consumer indicates that they wish to pay a bill. In a typical scenario, a consumer provides the third-party computing system with biller data such as the biller's name, address and phone number, how much the consumer wishes to pay the biller, and a date when the payment should be made.
There are many types of businesses that consumers may wish to pay using bill pay functionality of personal finance software. Some of those businesses may interact with a consumer's bank or bill pay service, providing information such as how much is owed in a particular payment, and when that payment is due. However, other businesses may not be affiliated with the consumer's bank. For those businesses that are not affiliated with the consumer's bank, the consumer must typically provide the data themselves.
Some businesses that consumers do business with, such as electric and gas utility businesses, phone companies, mortgage companies, automobile loan companies, banks and other financial institutions, and any other business that the consumers do business with, may provide webpages of the business which allow interested parties to gather data about the business, and which may further allow consumers of the business to become authorized to view special pages within the webpages of the business which are specifically directed to account statuses of the consumer, balances of the consumer, when a last payment was made by the consumer to the business, the amount of that last payment, and other details which may be important to consumers.
In some situations, a large number of consumers have one or more accounts with a third-party computing system providing a financial management application program to assist those consumers. If enough of those consumers do business with a particular business that has a website, such as a utility company, there may be enough justification for the application developers associated with the third-party computing system to develop a website scraping process through which consumer-specific business data associated with those consumers may be gathered from areas of the business website dedicated to providing the user data about their accounts.
Screen scraping processes are very tedious to create, since they must typically operate for a very large number of users, in order to justify the amount of work required in creating the screen scraping processes. Typically, an application program has a single large screen scraping process which handles a large number of webpages and many different conditions which may be associated with many different consumers. Further, a webpage produced for one user may look differently than the same webpage produced for a different user. A website may appear to be a single webpage, but a screen scraping process must treat each different version of a page as a different webpage, or a different website. Because of the wide variety of situations that the various consumers may be in with respect to the business, or because the business website provides different views to different customers, a typical screen scraping process, such as described above, requires a lot of testing and branching, creating different execution paths, to ensure that all conditions for all consumers are satisfied by the one screen scraping process.
Screen scraping processes such as described above also typically require constant update due to the structure or other details of the webpages being changed, for one reason or another. Further, due to the large number of potential businesses that have websites that provide user data to users, the number of different screen scraping processes that would be needed to satisfy the large number of consumers using a large number of businesses is typically more than a standard development team can manage. Therefore, screen scraping processes are typically only developed to operate on websites where a very large percentage of the customer base does business.
Therefore, it would be beneficial to have a system whereby many contributors are enabled to create user contributed website scripts for gathering data from various websites those contributors use.